package com.mmm.station.base.utils;


import com.mmm.station.base.utils.generator.CodeGenerator;
import com.mmm.station.base.utils.generator.Config;

/**
 * 单独运行，来生成文件 All rights Reserved
 * 
 * @Title: RunToGenerate.java
 * @Package com.hicores
 * @Description:
 * @author: alan
 * @date: 2016年5月12日 下午8:40:07
 * @version V1.0
 */
public class RunToGenerate {

	public static void get(String[] args) {
		try {
			// String viewSql = "select A.* from bd_hpl_goodses A where 1=0";
			
			// //不需要数据，只需要结构，可以Join其他的表
			String viewSql = null;
//			viewSql = "select A.*,B.area_name provinceName,C.area_name cityName,D.area_name areaName,F.code_text rankName,E.area_name sysAreaName "
//					+ " from base_hospital_info A "
//					+ " left JOIN base_site_area B on A.hpl_province_id = B.area_id and B.sys_id=0"
//					+ " left JOIN base_site_area C on A.hpl_city_id = C.area_id and C.sys_id=0"
//					+ " left JOIN base_site_area D on A.hpl_area_id = D.area_id and D.sys_id=0"
//					+ " left JOIN sys_area E on A.area_id = E.area_id"
//					+ " LEFT JOIN base_code_info F on A.hpl_rank = F.code_id and F.area_id=0 and F.sys_id=0 "
//					+ " LEFT JOIN base_code_type G on F.type_id = G.type_id and G.area_id=0 and G.sys_id=0 "
//					+ " and F.area_id=0 and F.sys_id=0 and G.type_key = 'HOSPITAL_RANK'"
//					;
			Config config = new Config("jdbc.properties", // jdbc
					"target/classes/", 		// 输出路径，以斜杠结束
					"src/main/java/", 		// 源代码路径，以斜杠结束
					"com.mmm.system", 	// 代码文件的package
					"SysMenu", 			// 文件名称的基本部分
					"",				// //方法名称的基本部分，
					"sys_menu", 		// 表名
					"sys_menu_id", 			// 表的主键，如果是联合主键，设置和表的业务内容最相关的主键，注意：区分大小写，请和表中一致
					viewSql, 				// 视图SQL，即查询结果需要的结构的SQL
					"用户" 			// 描述
			);
			
			config.setOrderBy("sys_menu_id"); //查询的排序，用逗号分开
//			config.setNameField("client_name");				//作为判读重复数据时使用，不设置的话需要手工修改xml文件
			

			config.setOverwriteFile(true);	//存在是否覆盖
			config.setAreaFilter(false);		//是否设置area_id 和sys_id 作为查询的过滤条件 
			CodeGenerator generator = new CodeGenerator(config);
			
			//以下是是否生成相应文件的开关，如果设置false，将不生成对应文件
			//特别注意：如果开启，将会覆盖已经存在的文件。
			generator.setEntityClsOn(true);		
			generator.setMapperFileOn(true);
			
			generator.setCtrlClsOn(true);
			generator.setServiceClsOn(true);
			generator.setImplServiceClsOn(true);
			generator.setMapperClsOn(true);
//			generator.setConfigChgOn(true);	//是否同步修改Mybatis的配置文件
			
			generator.run();

			System.out
					.println("You need to find the info class to generate its get/set methods!!!");
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

}
